“L’abolition de l’esclavage proclamé à la Convention”
“Monsiaux ou Monsiau, Nicolas-André , Dessinateur Thévenin, Charles (dit Carle) , Dessinateur Anonyme , Dessinateur” - Musée Carnavalet, Histoire de Paris
Commentaire historique:
“Expo : L’abbé Grégoire, Archives Nationales, 1951. L’esclavage dans les colonies françaises et son abolition en 1848, musée de France d’Outremer, 1948. Goya et l’âge de la Révolution, Hambourg, 1980. La Révolution française / Le Premier Empire / dessins du musée Carnavalet, 1983. “Bernard Molitor”, Luxembourg, musée d’Histoire de la Ville, 1995.Bibl : Guide du visiteur, musée Carnavalet, 1932. Sagnac Ph. et Robiquet J. : La Révolution de 1789. Ph. Bordas, “L’art de la Révolution française, Revue de l’art, 1984.L’esclavage fut aboli par un décret de la Convention du 16 Pluviose, an II de la République.” - Musée Carnavalet, Histoire de Paris
Les données utilisées proviennent des Archives du recensement “ Slave Voyages” et de ” Black Past ” aux Etats-Unis. Le but est de montrer l’étendue de l’esclavagisme, et de montrer la violence et la répression envers ces personnes. Nous avons de plus un devoir de mémoire, il semble donc cohérent, de pouvoir travailler et partager ces données.
Explications des tableaux :
age_m <- african_names %>%
summarise(mean_age= mean(age, na.rm = TRUE), sd_age = sd(age, na.rm =T),max_age=max(age,na.rm=T), min_age=min(age, na.rm=T))
age_m %>%
kbl() %>%
kable_styling()
| mean_age | sd_age | max_age | min_age |
|---|---|---|---|
| 18.8897 | 8.602876 | 77 | 0.5 |
L’âge moyen de la population (esclave) est de 19 ans, avec un écart type de d’environ 9 années.
L’âge le plus jeune est de 0.5 ans (6 mois) et l’âge le plus élevé est 77 ans. Je pense que l’âge des bébés (0.5 ans) est approximé
african_names[african_names==0] <- NA ## permet de tranformer les 0 en NA, dans le code en dessous je ne prends pas les NA. Car taille min 0 sinon
taille_m <- african_names %>%
summarise(mean_taille= mean(height, na.rm = TRUE)*2.54, sd_taille = sd(height, na.rm =T)*2.54,max_taille=max(height,na.rm=T)*2.54, min_taille=min(height, na.rm=T)*2.54)
taille_m%>%
kbl() %>%
kable_styling()
| mean_taille | sd_taille | max_taille | min_taille |
|---|---|---|---|
| 148.8674 | 17.3539 | 215.9 | 30.48 |
Aux USA, la taille est généralement calculée en pouce, nous allons donc multiplier celle du tableau par 2.54 pour l’avoir en cm. De plus, j’ai du tranformer les 0 en NA, sinon cela fausse ma taille minimum.
En moyenne, la population (esclave) étudiée mesure 1m49, l’écart type est de 17 cm. La taille minimum est de 30 cm (probablement à cause des conditions de vie difficiles de la mère) et la taille maximum est de 2m16.
#an.data<-data.frame(number=1:4, string=c("Woman", "Man", "Girl", "Boy"), stringsAsFactors = F)
## On va compter le nombre d'Homme, Femme et enfants avec la package string, sans prendre les valeurs manquantes en compte.
an.dataM <- str_count(african_names$gender, "Man")
a1 <- sum(an.dataM, na.rm=T) ### sum c'est pour additionner
an.dataW <- str_count(african_names$gender, "Woman")
b1 <- sum(an.dataW, na.rm=T)
an.dataG <- str_count(african_names$gender, "Girl")
c1 <- sum(an.dataG, na.rm=T)
an.dataB <- str_count(african_names$gender, "Boy")
d1 <- sum(an.dataB, na.rm=T)
## Nombre d'adultes :
e1 <-sum(an.dataM+an.dataW, na.rm=T)
## Nombre d'enfants :
f1<- sum(an.dataG+an.dataB, na.rm=T)
## Le nombre de données NA :
g1 <- 91490 - sum(an.dataB+an.dataG+an.dataW+an.dataM, na.rm=T) ##ici je prends toutes les observations et j'enleve des données que je connais et que j'ai calculée avant. n=91490 dans le tableau african_names
## création de deux tableaux à la main :
type <- c("Nombre de personnes")
Hommes <- c(a1)
Femmes <- c(b1)
Filles <- c(c1)
Garçons <- c(d1)
type2 <-c("Nombre de personnes total par groupe")
Total_adultes <- c(e1)
Total_enfants <- c(f1)
Total_donnees_manquantes <-c(g1)
an.table<-cbind(Hommes, Femmes, Filles, Garçons)
rownames(an.table)<-type
an.table2 <- cbind(Total_adultes, Total_enfants, Total_donnees_manquantes)
rownames(an.table2)<-type2
t_an.table<-t(an.table) ## J'inverse le sens, car c'est plus lisible
t_an.table2<-t(an.table2) ## J'inverse le sens, car c'est plus lisible
t_an.table %>%
kbl() %>%
kable_styling()
| Nombre de personnes | |
|---|---|
| Hommes | 33827 |
| Femmes | 13870 |
| Filles | 12019 |
| Garçons | 18896 |
t_an.table2 %>%
kbl() %>%
kable_styling()
| Nombre de personnes total par groupe | |
|---|---|
| Total_adultes | 47697 |
| Total_enfants | 30915 |
| Total_donnees_manquantes | 12878 |
a22 <- african_names %>%
filter(gender == "Boy") %>%
select(name) %>%
count(name) %>%
top_n(1)
## Selecting by n
a2 <- a22 %>% select(name) ## Je reselectionne jsute le nom
b22 <- african_names %>%
filter(gender == "Girl") %>%
select(name) %>%
count(name) %>%
top_n(1)
## Selecting by n
b2 <- b22 %>% select(name)
c22 <- african_names %>%
filter(gender == "Man") %>%
select(name) %>%
count(name) %>%
top_n(1)
## Selecting by n
c2 <- c22 %>% select(name)
d22 <- african_names %>%
filter(gender == "Woman") %>%
select(name) %>%
count(name) %>%
top_n(1)
## Selecting by n
d2 <- d22 %>% select(name)
# Création d'un tableau à la main :
cat <- c("Top prénom")
Homme <- c(c2)
Femme <- c(d2)
Fille <- c(b2)
Garçon <- c(a2)
n.table<-cbind(Homme, Femme, Fille, Garçon)
rownames(n.table)<-cat
t_n.table<-t(n.table) ## J'inverse le sens, car c'est plus lisible
t_n.table
## Top prénom
## Homme "Ojoe"
## Femme "Hyenah"
## Fille "Boy"
## Garçon "Ojoe"
t_n.table %>%
kbl() %>%
kable_styling()
| Top prénom | |
|---|---|
| Homme | Ojoe |
| Femme | Hyenah |
| Fille | Boy |
| Garçon | Ojoe |
## Je compte le nombre de personnes par années d'arrivées (grâce aux nombre de fois où les années d'arrivées apparaissent, car chaque personne a une date d'arrivée)
yan<-african_names %>%
group_by(year_arrival) %>%
count(year_arrival)
colnames(yan) [2] <- "nombre_de_pers" ##je nomme la colonne 2
## Ici je trace le plot :
yangraph<- yan %>%
ggplot(aes(x=year_arrival, y = nombre_de_pers))+
ggtitle("L'évolution du nombre d'esclaves arrivés aux USA de 1808 à 1862")+
ylab("nombre de personnes") + xlab("années d'arrivées")+
geom_line()
yangraph + theme_stata() ## Je change le theme pour que ce soit plus lisible
## Ici je selectionne le pays d'origine, le port d'embarquement et le port d'arrivé
## Puis je range par ordre alphabétique (par rapport aux pays)
## Je groupe par pays
## Et je compte le nombre d'invidus par rapport aux pays
## Je prends le pays où il y a eu le plus de personnes enlevées
po_intermediaire<-african_names %>%
select(country_origin) %>%
arrange(country_origin) %>%
group_by(country_origin) %>%
summarise(nombre_pers_enlevees=n()) %>%
top_n(1)
## Selecting by nombre_pers_enlevees
po_intermediaire %>%
kbl() %>%
kable_styling()
| country_origin | nombre_pers_enlevees |
|---|---|
| NA | 79404 |
## Je me rends compte que ce sont des valeurs manquantes et non un pays, ceci est quand même important pour mon analyse, je garde cette question.
Il y a beaucoup de données manquantes, cela montre à quel point il est difficile de savoir d’où ces personnes viennent. Aujourd’hui, beaucoup de personnes afro-américaines ayant des parents issus de l’esclavagisme, cherchent leurs origines qui sont très complexes à trouver. Ces données montrent une réalité actuelle : une des conséquences de l’esclavagisme sur les nouvelles générations
po<-african_names %>%
select(country_origin, port_embark, port_disembark) %>%
arrange(country_origin) %>%
group_by(country_origin) %>%
count(country_origin, port_embark, port_disembark) %>% ##je compte de nombre de personne ayant le meme pays, meme port d'embarquement et d'arrivé
filter(n>450) ## ici j'ai filtre en testant plusieurs fois avec différents nombres, pour avoir 5 pays, il faut prendre n>450
po2<- po[rowSums(is.na(po[, 1])) == 0, ] ## j'enlève les données manquantes
## Je trace deux graphiques :
po3<-po2 %>%
ggplot(aes(x=reorder(country_origin, -n), y = n, fill=port_embark))+ ## j'ordonne par pays et ordre décroissant du nombre de personnes.
ggtitle("Nombre de personnes enlevées de leurs pays d'origine")+
ylab("nombre de personnes") + xlab("pays d'origine")+
geom_col() + theme_stata() +
theme(axis.text.x = element_text( size=7, angle=18),# je change l'angle et la taille del'écriture des pays sur l'axe des x
axis.text.y = element_text(size=7)) + # la taille de l'écriture des chiffres sur l'axe des y
theme(axis.title.x = element_text(size = 7,face="bold"))+ # la taille et la mise en gras du titre des x
theme(axis.title.y = element_text(size = 7,face="bold"))+ theme(title=element_text(size=6.8, face="bold")) +#taille et gras titre axe y et du titre du graph
theme(legend.title = element_text(colour="black", size=6, face="bold")) + #mise en gras, couleur noir, taille titre legende
theme(legend.text = element_text(colour="black", size=7)) + # couleur noir et taille texte légende
scale_fill_brewer(palette="Dark2") #Les palettes de couleurs disponibles dans le package RColorBrewer et ce code est pour les barres.
po4<-po2 %>%
ggplot(aes(x=reorder(country_origin, -n), y = n, fill=port_disembark))+
ggtitle("Nombre de personnes enlevées de leurs pays d'origine")+
ylab("nombre de personnes") + xlab("pays d'origine")+geom_col()+ theme_stata() + theme_stata() +
theme(axis.text.x = element_text( size=7, angle=18),
axis.text.y = element_text(size=7)) +
theme(axis.title.x = element_text(size = 7,face="bold"))+
theme(axis.title.y = element_text(size = 7,face="bold"))+ theme(title=element_text(size=6.8, face="bold")) +
theme(legend.title = element_text(colour="black", size=6, face="bold")) +
theme(legend.text = element_text(colour="black", size=7)) + scale_fill_brewer(palette="Set1")
plot_grid(po3, po4,labels=c("P1", "P2"), ncol= 2, nrow=1)
bfb <- census %>%
arrange(year) %>%
mutate( porcent_black_free_on_black = (black_free/black)*100) %>% ##Ici je mets en % les noirs libres sur la pop noire totale
select(year, porcent_black_free_on_black)
bfb2 <- bfb %>%
ggplot(aes(x=year, y=porcent_black_free_on_black))+
labs(title = "Tendance de la part des personnes noires libres sur la pop. noire",
subtitle = "aux USA durant la période 1790-1870")+
ylab("pourcentage de personnes noires") + xlab("années")+
geom_smooth(color="darkcyan")
bsb <- census %>%
arrange(year) %>%
mutate(porcent_black_slave_on_black = (black_slaves/black)*100) %>% ##Ici je mets en % les noirs esclaves sur la pop noire totale
select(year, porcent_black_slave_on_black)
bsb2 <- bsb %>%
ggplot(aes(x=year, y=porcent_black_slave_on_black))+
labs(title = "Tendance de la part des personnes noires esclaves sur la pop. noire",
subtitle = "aux USA durant la période 1790-1870")+
ylab("pourcentage de personnes noires") + xlab("années")+
geom_smooth(color="darkcyan")
bt <- census %>%
arrange(year) %>%
mutate(porcent_black_on_pop = (black/total)*100) %>% ##Ici je mets en % les noirs sur la pop totale
select(year, porcent_black_on_pop)
bt2 <- bt %>%
ggplot(aes(x=year, y=porcent_black_on_pop))+
labs(title = "Tendance de la part des personnes noires sur la pop. totale",
subtitle = "aux USA durant la période 1790-1870")+
ylab("pourcentage de personnes noires") + xlab("années")+
geom_smooth(color="darkcyan")
wt <- census %>%
arrange(year) %>%
mutate(porcent_white_on_pop = (white/total)*100) %>% ##Ici je mets en % les blancs sur la pop noire totale
select(year, porcent_white_on_pop) %>%
select(year, porcent_white_on_pop)
wt2 <- wt %>%
ggplot(aes(x=year, y= porcent_white_on_pop))+
labs(title = "Tendance de la part des personnes blanches sur la pop. totale",
subtitle = "aux USA durant la période 1790-1870")+
ylab("pourcentage de personnes noires") + xlab("années")+
geom_smooth(color="darkcyan")
##Ici je change le visuel (voir question avant tout est expliqué)
bfb3<- bfb2 + theme_stata() +
theme(axis.title.x = element_text(size = 7, face="bold"))+
theme(axis.title.y = element_text(size =7,face="bold"))+ theme(title=element_text(size=5.7, face="bold"))
bsb3<- bsb2 + theme_stata() +
theme(axis.title.x = element_text(size = 7, face="bold"))+
theme(axis.title.y = element_text(size =7,face="bold"))+ theme(title=element_text(size=5.5, face="bold"))
bt3 <- bt2 + theme_stata() +
theme(axis.title.x = element_text(size = 7, face="bold"))+
theme(axis.title.y = element_text(size =7,face="bold"))+ theme(title=element_text(size=5.8, face="bold"))
wt3 <- wt2 + theme_stata() +
theme(axis.title.x = element_text(size = 7, face="bold"))+
theme(axis.title.y = element_text(size =7,face="bold"))+ theme(title=element_text(size=5.8, face="bold"))
plot_grid(bfb3, bsb3,labels=c("1", "2"), ncol= 2, nrow=1) ## Ici je met sur la meme page deux graphiques
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
plot_grid(bt3, wt3,labels=c("1", "2"), ncol= 2, nrow=1) ## Ici aussi
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
## Ici on fait la moyenne par région des colonnes 4 à 8
a<-aggregate(census[, 4:8], list(census$region), mean) %>% ##je prends les colonnes 4 à 8 et je prends par rapport à la région
rename(region=Group.1) #je renomme la colonne Group.1 par région, car ca l'a nommé automatiquement avec le code ci dessus.
## Ici j'ai fait ce code car je pensais aussi faire les moyennes selon chaque région, mais du coup je ne l'ai pas fait. Donc autant le laisser si une future question posée porte la dessus.
## Ici c'est le total de chaque région :
b <- aggregate(census[, 4:8], list(census$region), FUN = sum) %>%
rename(region=Group.1) ## Comme je veux faire un filtre par région pour la suite, il fallait que je crée une colonne région, car avant de le faire, ca ne fonctionnait pas. Je ne pouvais pas filtrer par région avec le tableau census
## Ici on va calculer selon les regions la part de personnes noires, blanches, noires et esclave libre, noires et esclave (Les deux dernières colonnes aditionnées font la somme de la deuxième colonne)
c <- b %>%
transform (white_total = white / total) %>%
transform(black_total = black / total) %>%
transform(black_free_total = black_free / total) %>%
transform(black_slaves_total = black_slaves / total) %>%
select(region, white_total, black_total, black_free_total, black_slaves_total)
## On trace les graphiques en barres : Pour simplifier ici je prends le total (pas les régions)
j <- c %>%
filter(region == "USA Total")
w_graph <-j %>%
ggplot(aes(x=region,y= white_total))+
geom_col(fill="darkcyan")
b_graph<- j %>%
ggplot(aes(x=region,y= black_total))+
geom_col(fill="darkcyan")
bsl_graph<- j %>%
ggplot(aes(x=region,y= black_slaves_total))+
geom_col(fill="darkcyan")
bf_graph <- j %>%
ggplot(aes(x=region,y= black_free_total))+
geom_col(fill="darkcyan")
w_graph2 <- w_graph + ylab("White / Total pop") + xlab("L'ensemble des USA") +
ggtitle("Part pers. blanches/pop") +
scale_y_continuous(limits = c(0, 1)) +
theme(axis.title.x = element_text(size = 7, face="bold"))+
theme(axis.title.y = element_text(size =7,face="bold"))+ theme(title=element_text(size=6, face="bold"))
b_graph2 <-b_graph + ylab("Black / Total pop") + xlab("L'ensemble des USA") +
ggtitle("Part pers. noires/pop") +
scale_y_continuous(limits = c(0, 1)) +
theme(axis.title.x = element_text(size = 7, face="bold"))+
theme(axis.title.y = element_text(size =7,face="bold"))+ theme(title=element_text(size=6, face="bold"))
bsl_graph2 <- bsl_graph + ylab("Black Slaves / Total pop") + xlab("L'ensemble des USA") +
ggtitle("Part pers. esclaves noires/pop") +
scale_y_continuous(limits = c(0, 1)) +
theme(axis.title.x = element_text(size = 7, face="bold"))+
theme(axis.title.y = element_text(size =7,face="bold"))+ theme(title=element_text(size=5.2, face="bold"))
bf_graph2 <- bf_graph + ylab("Black Free / Total pop") + xlab("L'ensemble des USA") +
ggtitle("Part pers. libres noires/pop") +
scale_y_continuous(limits = c(0, 1)) +
theme(axis.title.x = element_text(size = 7, face="bold"))+
theme(axis.title.y = element_text(size =7,face="bold"))+ theme(title=element_text(size=5.8, face="bold"))
plot_grid(w_graph2, b_graph2, bsl_graph2, bf_graph2, labels=c("A", "B", "C", "D"), ncol= 4, nrow=1) ##je mets tous mes graphiques à coté, que je nomme de A à D, de 4 colonnes et 1 ligne
## Pour toutes les régions sauf le total :
k <- c %>%
filter(region %in% c("West","South","Midwest","Northeast"))
w_graph_k <-k %>%
ggplot(aes(x=region,y= white_total, fill = white_total))+
geom_col() + scale_fill_gradient("white_total", low = "darkcyan", high = "darkslategrey")
b_graph_k <- k %>%
ggplot(aes(x=region,y= black_total, fill = black_total))+
geom_col() + scale_fill_gradient("white_total", low = "darkcyan", high = "darkslategrey")
bsl_graph_k <- k %>%
ggplot(aes(x=region,y= black_slaves_total, fill=black_slaves_total))+
geom_col() + scale_fill_gradient("white_total", low = "darkcyan", high = "darkslategrey")
bf_graph_k <- k %>%
ggplot(aes(x=region,y= black_free_total, fill=black_free_total))+
geom_col() + scale_fill_gradient("white_total", low = "darkcyan", high = "darkslategrey")
w_graph_k2 <- w_graph_k + ylab("White / Total pop") + xlab("L'ensemble des USA") +
ggtitle("La part des personnes blanches sur le total de la population") +
scale_y_continuous(limits = c(0, 1)) + theme(title=element_text(size=5, face="bold")) + coord_flip() # je mets une échelle de 1
## Je bascule le graphique horizontalement
b_graph_k2 <- b_graph_k + ylab("Black / Total pop") + xlab("L'ensemble des USA") +
ggtitle("La part des personnes noires sur le total de la population") +
scale_y_continuous(limits = c(0, 1)) + theme(title=element_text(size=5, face="bold")) +coord_flip() #Je mets une échelle de 1
bsl_graph_k2 <- bsl_graph_k + ylab("Black Slaves / Total pop") + xlab("L'ensemble des USA") +
ggtitle("La part des personnes esclaves noires sur le total de la population") +
scale_y_continuous(limits = c(0, 0.3)) + theme(title=element_text(size=5, face="bold")) + coord_flip() ##Ici je change l'echelle sinon on ne voit pas grand chose
bf_graph_k2 <- bf_graph_k + ylab("Black Free / Total pop") + xlab("L'ensemble des USA") +
ggtitle("La part des personnes libres noires sur le total de la population") +
scale_y_continuous(limits = c(0, 0.3)) + theme(title=element_text(size=5, face="bold")) + coord_flip()## Je change l'échelle ici aussi
plot_grid(w_graph_k2, b_graph_k2, labels=c("E", "F"), ncol= 2, nrow=1) ## je les mets sur le même graph pour pourvoir comparer
plot_grid( bsl_graph_k2, bf_graph_k2, labels=c("G", "H"), ncol= 2, nrow=1)
Note 1 : Le graphique B est l’addition des graphiques C et D
Note 2 : le dernier graphique n’est pas à la même échelle que les autres, car on ne voyait pas assez bien les données. De plus la somme des personnes esclaves noires (graphique G) et des personnes libres noires (graphique H) sont le total des personnes noires (F).
Remarque : on observe qu’il y a plus de personnes noires dans la région du sud, cela peut s’expliquer par le travail des champs.
sr<-slave_routes[complete.cases(slave_routes), ] ### J'enleve les valeurs manquantes
sr2<- sr %>%
filter(n_slaves_arrived>1000) %>% ## je filtre pour avoir des bateaux avec + de 1000 esclaves
arrange(-n_slaves_arrived) %>% ## Je range par ordre décroissant du nombre de personnes
select(n_slaves_arrived, ship_name, port_origin, port_arrival)
## je trace le graphique, avec en coloeur le nom des bateaux et en taille le nomdre de personnes. Je rajoute en descripion sur le graphique le nombre de personnes en chiffres.
sr3 <- sr2 %>% ggplot(aes(x = port_origin, y = port_arrival, color = ship_name,size = n_slaves_arrived, label=n_slaves_arrived)) +
geom_point() + xlab("ports d'origines") + ylab("ports d'arrivés") +
labs(title = "Ports d'arrivés et d'origines", subtitle = "(par rapport aux nombres d'esclaves et aux noms des bateaux)")+
geom_text(size = 2.5, color = "black", vjust = -1.5) ##j'ajuste pour pas que ce soit sur le cercle.
sr4<- sr3 + theme(axis.text.x = element_text( size=6.5, angle=30),
axis.text.y = element_text(size=6.5)) +
theme(axis.title.x = element_text(size = 9, vjust= +15,face="bold"))+
theme(axis.title.y = element_text(size = 9,face="bold"))+ theme(title=element_text(size=9, face="bold"))
sr5 <- sr4 + theme(legend.title = element_text(colour="black", size=9, face="bold")) +
theme(legend.text = element_text(colour="black", size=7)) ##texte de la légende
sr5
## Il est impossible d'extraire les données. Lorsque je cherche à prendre des dates, elles ne s'affichent pas toutes, je vais donc recréer un tableau à la main, en choisisant des données "importantes" à mon sens dans le tableau blackpast:
type4 <- c("A", "B", "C", "D", "E", "F")
"Date" <- c(1602, 1619, 1793, 1808, 1861, 1865)
"Evenement" <- c( "1ère colonie fondée en Virginie", "1ère arrivée documentée d'esclaves en provenance d'Afrique", "Invention de la machine à égrainer le coton, cela va contribuer à l'essor de l'esclavagisme aux USA", "Adoption par le Sénat et la Chambre de l’interdiction de la traite négrière atlantique.", "Guerre de Sécession", "Abolition définitive de l’esclavage ")
bp_tab1 <- cbind(Date, Evenement)
rownames(bp_tab1)<-type4
bp_tab2 <- transform(bp_tab1, Date = as.numeric(Date)) ## Je tranforme la colonne date en données numériques
## Je montre un petit tableau
bp_tab2 %>%
kbl() %>%
kable_styling()
| Date | Evenement | |
|---|---|---|
| A | 1602 | 1ère colonie fondée en Virginie |
| B | 1619 | 1ère arrivée documentée d’esclaves en provenance d’Afrique |
| C | 1793 | Invention de la machine à égrainer le coton, cela va contribuer à l’essor de l’esclavagisme aux USA |
| D | 1808 | Adoption par le Sénat et la Chambre de l’interdiction de la traite négrière atlantique. |
| E | 1861 | Guerre de Sécession |
| F | 1865 | Abolition définitive de l’esclavage |
## Changement du tableau pour le plot suivant
type5 <- c("A", "B", "C", "D", "E", "F")
"Date_bis" <- c(1602, 1619, 1793, 1808, 1861, 1865)
"Evenement_bis" <- c( "A", "B", "C", "D", "E", "F")
bp_tab3 <- cbind(Date_bis, Evenement_bis)
rownames(bp_tab2)<-type5
bp_tab4 <- transform(bp_tab3, Date_bis = as.numeric(Date_bis)) ## Je tranforme la colonne date en données numériques
## Je vais créer un graphique avec des points :
bp_tab4_graph <- bp_tab4 %>%
ggplot((aes(x=Date_bis, y=Evenement_bis, label=Date_bis)))+
geom_point(size = 4, color="darkcyan") + xlab("Dates des Evènements") + ylab("Evènements") +
labs(title = "Les évènements et dates clefs de l'esclavagisme aux USA") +
geom_text(size = 3, vjust = -1.5, color="black") + theme_stata()
bp_tab4_graph
Dates clefs :
A : 1ère colonie fondée en Virginie - 1602
B : 1ère arrivée documentée d’esclaves en provenance d’Afrique - 1619
C : Invention de la machine à égrainer le coton, cela va contribuer à l’essor de l’esclavagisme aux USA - 1793
D : Adoption par le Sénat et la Chambre des représentants des États-Unis de l’interdiction de la traite négrière atlantique. Le Congrès avait déjà décidé cette abolition dès 1794 ! La contrebande d’esclaves se poursuivra cependant encore plusieurs années - 1808
E : Guerre de Sécession - 1861-1865
F : Abolition définitive de l’esclavage : Ni esclavage, ni servitude involontaire, n’existeront aux États-Unis, ni dans aucun lieu soumis à leur juridiction - 1865
Je commence par m’excuser: j’ai changé de modèle de presentation en cours de route, et par conséquent vous avez eu moins de minutes de présentation que vos collègues. Toutes mes excuses.
C’est un travail très dense et bien fait.
Merci ! Il n’y a pas de problèmes !
Q3: pourriez-vous faire une analyse plus compacte, qui, en moins de lignes de code et en utilisant les fonctions et outils du tidyverse vus en cours, puisse produire le même premier tableau de votre réponse? Moi j’ai réussi en 2 lignes, donc c’est faisable! Avec deux ou trois lignes de plus on devrait pouvoir produire aussi le deuxième tableau. Et c’est aussi plus lisible.
Même chose pour Q4 – si vous mobilisez les outils vus en L2 L3 et L4 vous allez pouvoir faire la même analyse sur les noms les plus utilisés en 3-5 lignes de code (hint: group_by et top_n sont vos amis)
# Rappel question 3 : Quelle est le nombre de femmes, d'hommes, d'enfants dans notre population ?
# tableau effectif pour femmes, hommes, garcons, filles et valeurs manquantes:
q3_bis<- african_names %>% group_by(gender) %>%count(gender) %>% rename(effectif=n)
q3_bis %>%
kbl() %>%
kable_styling()
| gender | effectif |
|---|---|
| Boy | 18896 |
| Girl | 12019 |
| Man | 33827 |
| Woman | 13870 |
| NA | 12878 |
## Si on veut vraiment le tableau que j'avais fais plus haut, donc sans les données manquantes, on peut rajouter : q3_bis[-5,]
# tableau pour adultes et enfants :
#(je n'ai pas trouvé de méthode plus courte, il faudrait essayer en regardant la question d'un autre coté mais je n'y arrive pas, donc j'ai refais une méthode similaire à celle que j'avais fait auparavant)
q4_bis<- q3_bis[1:2,]
q44_bis <- sum(as.numeric(q4_bis$effectif))
q41_bis<- q3_bis[3:4,]
q441_bis <- sum(as.numeric(q41_bis$effectif))
q42_bis <- q3_bis[5,2]
## Création du 2ème tableau à la main :
type5 <-c("Nombre de personnes total par groupe")
Total_adultes <- c(q44_bis)
Total_enfants <- c(q441_bis)
Total_donnees_manquantes <-c(q42_bis)
an.table_type2<-cbind(Total_adultes, Total_enfants, Total_donnees_manquantes)
rownames(an.table_type2)<-type5
t_an.table_t2<-t(an.table_type2)
##Pour que ce soit plus lisible :
t_an.table_t2 %>%
kbl() %>%
kable_styling()
| Nombre de personnes total par groupe | |
|---|---|
| Total_adultes | 30915 |
| Total_enfants | 47697 |
| Total_donnees_manquantes | 12878 |
### Pour les prénoms :
pre_af<- african_names %>%
group_by(gender) %>%
count(name) %>%
top_n(1) %>%
select(name)
## Selecting by n
## Adding missing grouping variables: `gender`
## Effectivement, il ne fallait que 4 lignes de code, c'est bcp plus rapide !
pre_af2 <- pre_af[-5,] ## ici je supprime la dernière colonne qui regroupe les NA, comme c'est déjà calculé, c'est le plus rapide à faire.
# Pour que ce soit plus lisible :
pre_af2 %>%
kbl() %>%
kable_styling()
| gender | name |
|---|---|
| Boy | Ojoe |
| Girl | Boy |
| Man | Ojoe |
| Woman | Hyenah |
en utilisant census, plottez la part de noirs esclaves en 1870 et 1790. Essayez d’en tirer un “dumbbell” plot, qui est un plot dans ce style: https://static01.nyt.com/images/2021/03/24/multimedia/24-GENDER-EARNINGSGAP_RACE/24-GENDER-EARNINGSGAP_RACE-mobileMasterAt3x.png ou bien https://econlife.com/wp-content/uploads/2016/07/Dr__Paid_Less__An_Old_Title_Still_Fits_Female_Physicians_-_The_New_York_Times.png C’est à dire un “dotplot” qui montre pour chaque secteur (et sous-secteur) la différence homme/femme. Ce type de plots s’appellent aussi Dumbbell plots, examples ici: http://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html#3.%20Ranking
J’ai donc fait ici, un Dumbbell pour l’année 1850 vs 1870 (car pas assez de données pour l’année 1790, en effet nous n’avons ni le midwest ni l’ouest, ça aurait été très interressant avec cette année, mais nous n’aurions pas pu comparer comme avec l’année 1850). Pour vous montrer qu’il manque le midwest et l’ouest, je vous montre le tableau (1er et seul tableau apparaissant). Je n’aurais pas utilisé ce plot, car ce n’est pas très lisible avec mes données, au vu des échelles, néanmoins il est très joli. Le Dummbbel pour les esclaves noirs est le 3ème, j’ai aussi fait les autres pour pouvoir faire des comparaisons. Surtout celui de la part des personnes noires libres, car il montre l’inverse de celui des peronnes noires esclaves.
## J'ai ici calculé pour l'année 1790, mais il nous manque des régions, donc je vous montre le calcul et le tableau, mais je vais choisir l'année 1850 (l'année avec des données pour chaque région qui est la plus proche de 1790)
census_2<- census %>% filter(year==1790) %>% select(region, total, white, black, black_free, black_slaves)
census_21<- census_2[1:3,] ## je garde que le total de la region sans prendre en compte les divisions pour pouvoir comparer, car tous n'ont pas les divisions
census_21 %>% transform (white_total = white / total) %>%
transform(black_total = black / total) %>%
transform(black_free_total = black_free / total) %>%
transform(black_slaves_total = black_slaves / total) %>%
select(region, white_total, black_total, black_free_total, black_slaves_total) %>% kbl() %>%
kable_styling()
| region | white_total | black_total | black_free_total | black_slaves_total |
|---|---|---|---|---|
| USA Total | 0.8072877 | 0.1927123 | 0.0151498 | 0.1775625 |
| Northeast | 0.9657405 | 0.0342595 | 0.0137548 | 0.0205047 |
| South | 0.6482801 | 0.3517199 | 0.0165498 | 0.3351702 |
## Pour l'année 1850 :
census_4<- census %>% filter(year==1850) %>% select(region, total, white, black, black_free, black_slaves)
census_41<- census_4[1:5,]
census_42<- census_41 %>% transform (white_total_1850 = white / total) %>%
transform(black_total_1850 = black / total) %>%
transform(black_free_total_1850 = black_free / total) %>%
transform(black_slaves_total_1850 = black_slaves / total) %>%
select(region, white_total_1850, black_total_1850, black_free_total_1850, black_slaves_total_1850)
## Pour l'année 1870 :
census_3<- census %>% filter(year == 1870 )%>% select(region, total, white, black, black_free, black_slaves)
census_31 <- census_3[1:5,]
census_32<- census_31 %>% transform (white_total_1870 = white / total) %>%
transform(black_total_1870 = black / total) %>%
transform(black_free_total_1870 = black_free / total) %>%
transform(black_slaves_total_1870 = black_slaves / total) %>%
select(region, white_total_1870, black_total_1870, black_free_total_1870, black_slaves_total_1870)
census_51 <- head(cbind(census_42, census_32)) ### Je les merge
census_52 <- census_51[,-6] ##Je suppprimer la 6eme colonne car deux fois régions
census_53 <- census_52[-1,]
# geom_dumbbell
library(ggplot2)
library(ggalt)
## Registered S3 methods overwritten by 'ggalt':
## method from
## grid.draw.absoluteGrob ggplot2
## grobHeight.absoluteGrob ggplot2
## grobWidth.absoluteGrob ggplot2
## grobX.absoluteGrob ggplot2
## grobY.absoluteGrob ggplot2
library(scales)
##
## Attachement du package : 'scales'
## L'objet suivant est masqué depuis 'package:purrr':
##
## discard
## L'objet suivant est masqué depuis 'package:readr':
##
## col_factor
theme_set(theme_stata())
factor(census_53$region, levels=as.character(census_53$region)) # for right ordering of the dumbells
## [1] Northeast Midwest South West
## Levels: Northeast Midwest South West
t_census_w <- ggplot(census_53) +
aes(y = region, x = white_total_1850, xend = white_total_1870) +
geom_dumbbell(size = 2,color = "#e3e2e1",colour_x = "#6699CC",colour_xend = "#882255" ) + scale_x_continuous(label=percent) + labs(y="Région", x="Personnes blanches",
title="Pourcentage des personnes blanches en 1850 vs 1870",
subtitle="En bleu en 1850 & en rose en 1870") +
theme(plot.title = element_text(hjust=0.5, face="bold"),
plot.background=element_rect(fill="#f7f7f7"),
panel.background=element_rect(fill="#f7f7f7"),
panel.grid.minor=element_blank(),
panel.grid.major.y=element_blank(),
panel.grid.major.x=element_line(),
axis.ticks=element_blank(),
legend.position="top",
panel.border=element_blank())
t_census_b <- ggplot(census_53) +
aes(y = region, x = black_total_1850, xend = black_total_1870) +
geom_dumbbell(size = 2,color = "#e3e2e1",colour_x = "#6699CC",colour_xend = "#882255" ) + scale_x_continuous(label=percent) + labs(y="Région", x="Personnes noires",
title="Pourcentage des personnes noires en 1850 vs 1870",
subtitle="En bleu en 1850 & en rose en 1870") +
theme(plot.title = element_text(hjust=0.5, face="bold"),
plot.background=element_rect(fill="#f7f7f7"),
panel.background=element_rect(fill="#f7f7f7"),
panel.grid.minor=element_blank(),
panel.grid.major.y=element_blank(),
panel.grid.major.x=element_line(),
axis.ticks=element_blank(),
legend.position="top",
panel.border=element_blank())
t_census_bf <- ggplot(census_53) +
aes(y = region, x = black_free_total_1850, xend = black_free_total_1870) +
geom_dumbbell(size = 2,color = "#e3e2e1",colour_x = "#6699CC",colour_xend = "#882255" ) + scale_x_continuous(label=percent) + labs(y="Région", x="Personnes noires libres",
title="Pourcentage des personnes noires libres en 1850 vs 1870",
subtitle="En bleu en 1850 & en rose en 1870") +
theme(plot.title = element_text(hjust=0.5, face="bold"),
plot.background=element_rect(fill="#f7f7f7"),
panel.background=element_rect(fill="#f7f7f7"),
panel.grid.minor=element_blank(),
panel.grid.major.y=element_blank(),
panel.grid.major.x=element_line(),
axis.ticks=element_blank(),
legend.position="top",
panel.border=element_blank())
t_census_bs <- ggplot(census_53) +
aes(y = region, x = black_slaves_total_1850, xend = black_slaves_total_1870) +
geom_dumbbell(size = 2,color = "#e3e2e1",colour_x = "#6699CC",colour_xend = "#882255" ) + scale_x_continuous(label=percent) + labs(y="Région", x="Personnes noires esclaves",
title="Pourcentage des personnes noires esclaves en 1850 vs 1870",
subtitle="En bleu en 1850 & en rose en 1870") +
theme(plot.title = element_text(hjust=0.5, face="bold"),
plot.background=element_rect(fill="#f7f7f7"),
panel.background=element_rect(fill="#f7f7f7"),
panel.grid.minor=element_blank(),
panel.grid.major.y=element_blank(),
panel.grid.major.x=element_line(),
axis.ticks=element_blank(),
legend.position="top",
panel.border=element_blank())
t_census_w2 <- t_census_w + theme(title=element_text(size=6.6, face="bold"))
t_census_b2 <- t_census_b + theme(title=element_text(size=7, face="bold"))
t_census_bs2 <- t_census_bs + theme(title=element_text(size=6.2, face="bold"))
t_census_bf2 <- t_census_bf + theme(title=element_text(size=6.5, face="bold"))
plot_grid( t_census_w2, t_census_b2, ncol= 2, nrow=1)
plot_grid( t_census_bs2, t_census_bf2, ncol= 2, nrow=1)
Créez une variable qui compte tous les esclaves arrivés de chaque port d’origine. Quels sont les 5 ports d’origine qui plus ont contribué? Quelle est leur part sur le total?
# calcul :
afr_q<- african_names %>% count(port_embark) %>% arrange(-n, port_embark) %>% rename(total_population_srq = n)
afr_q1 <- afr_q[1:5,] #Je prends les 5 premières lignes
tot_afr <- sum(as.numeric(afr_q$total_population_srq)) #Je tranforme en numérique et calcule le total
afr_q2 <- afr_q1 %>% transform (part_slave_route_sur_tot = total_population_srq / tot_afr) #Je rajoute la part dans le total
afr_q2 %>%
kbl() %>%
kable_styling()
| port_embark | total_population_srq | part_slave_route_sur_tot |
|---|---|---|
| Lagos | 15730 | 0.1719314 |
| Bonny | 14449 | 0.1579298 |
| Ouidah | 8306 | 0.0907859 |
| Old Calabar | 7192 | 0.0786097 |
| Gallinhas | 4522 | 0.0494262 |
## Plot pour que ce soit plus beau et visible
afr_q2 %>% ggplot(aes(y=part_slave_route_sur_tot, x=reorder(port_embark, -part_slave_route_sur_tot), label= round(part_slave_route_sur_tot,3)))+ geom_col(fill="darkcyan") + xlab("Ports d'origines") + ylab("Part de personnes enlévées sur le total des ports existant") +
labs(title = "Les 5 premiers ports et la part des personnes enlevées", subtitle = "(la part des personnes enlevées étant comptabilisée sur le total de tout les ports)")+
geom_text(size = 2.5, vjust = -1) +theme_stata()
** La présentation est moins travaillée par manque de temps, j’espère néanmoins que la lecture n’était pas trop compliquée **